This invention is related to parallel peripheral interface capabilities for computer hosts.
Portable computer hosts, including handheld computing devices, notebook-sized computing devices, and similar reduced form-factor computing platforms, typically allow for expansion capabilities via couplings (slots, sleeves, or other similar mechanical structures) for mating expansion cards, modules, or other similar form-factor expansion resources. One important class of expansion capabilities includes peripheral interfaces. The host is typically restricted from providing a rich set of peripheral interfaces, due to weight, cost, size, or other physical limitations. Thus expansion capabilities to add or enhance peripheral interface resources to these hosts are an important area of development.
UART and RS-232 Standards
The RS-232 serial communication standard is described in document TIA/EIA-232F, “Interface Between Data Terminal Equipment and Data Circuit-Terminating Equipment Employing Serial Binary Data Interchange (ANSI/TIA/EIA-232-F-1997)”, Sep. 1, 1997, Telecommunications Industry Association, 2500 Wilson Blvd., Suite 300, Arlington, Va. 22201. RS-232 serial is used for communication with modems, printers, pointing devices, and other computing peripherals.
The IBM PC Compatible legacy serial port is well known in the art. A Universal Asynchronous Receiver/Transmitter (UART) compatible with this de-facto industry standard is the 16C450/16C550. A representative part is described in the datasheet for the PC16550D, June 1995, from National Semiconductor.
Host application and operating system access to RS-232 serial port resources is typically by way of intermediate lower-level software, including device drivers and BIOS layers. However, in the specific case of hosts compatible (at least in part) with the IBM PC standard, some applications and operating systems bypass these lower-level software layers and directly perform read and write accesses to specific hardware addresses corresponding to the so-called industry standard architecture (ISA) address range and bit-level register compatibility of legacy serial port interface hardware.
The bit-level register compatibility expected is according to the industry standard 16C450/16C550 UART and the associated ISA address blocks for COM1, 2, 3, and 4. Compatible operation also includes an interrupt capability, which is routed to an interrupt controller for further processing.
Table 1, below, summarizes the required UART register addressing and functionality. A portion of the register address decode is controlled by the most significant bit of the UART Line Control Register. This is the Divisor Latch Access Bit (DLAB) in the table, and an “x” in the column indicates the state of DLAB is ignored for the decoding of the particular row in the table.
TABLE 1Address (hex)DLABCOM1COM2COM3COM4Register03F82F83E82E8UART receiver buffer register (RBR) - read only03F82F83E82E8UART transmitter holding register (THR) - write only13F82F83E82E8UART divisor latch LSB (DLL)03F92F93E92E9UART interrupt enable register (IER)13F92F93E92E9UART divisor latch MSB (DLM)x3FA2FA3EA2EAUART interrupt identification register (IIR) - read onlyx3FA2FA3EA2EAUART FIFO control register (FCR) - write onlyx3FB2FB3EB2EBUART line control register (LCR)x3FC2FC3EC2ECUART modem control register (MCR) - bit 5 read onlyx3FD2FD3ED2EDUART line status register (LSR)x3FE2FE3EE2EEUART modem status register (MSR)x3FF2FF3EF2EFUART scratch register (SCR)Expansion Card Standards
Two of the most popular industry standards for expansion cards and their associated expansion slots are the PC Card and the CompactFlash (CF) Card. The PC Card has a 16-bit variant, previously known as a PCMCIA card, and a newer 32-bit variant, also known as a Card-Bus card. The following references provide further information on the PC Card and CF Card standards:                CFA, CF+ and CompactFlash Specification, Revision 1.4, www.compactflash.org, CompactFlash Association, P.O. Box 51537, Palo Alto, Calif. 94303;        CFA, CF+ and CompactFlash Specification, Revision ATA Compatibility Working Group Draft 0.1, www.compactflash.org, CompactFlash Association, P.O. Box 51537, Palo Alto, Calif. 94303;        PCMCIA, PC Card Standard, March 1997, www.pc-card.com, Personal Computer Memory Card International Association, 2635 North First Street, Suite 209, San Jose, Calif. 95134; and        Design Guidelines for PC Card and CardBus, Addendum to PC 2001 System Design Guide, Version 1.1, Apr. 12, 2000, Intel Corporation and Microsoft Corporation.        